<?php

include_once 'Conexion.php';
include_once 'AsesoriaVirtual.php';
include_once 'Usuario.php';
include_once 'Telefono.php';
include_once 'Cita.php';
include_once 'GestionUsuario.php';

class GestionAsesoriaVirtual {

    /**
     * Registra una asesoria virtual
     * @param type $descripcion descripcion de la asesoria a registrar
     * @param type $usuario usuario que le corresponde la asesoria
     */
    public function RegistroWeb($descripcion, $usuario) {
        $query = "INSERT INTO ASESORIA VALUES (NULL, '" . $descripcion . "','" . $usuario . "','ON LINE','',now(),1)";
        $query = Conectar($query);
    }

    public function registroAsesoria($usuario, $descripcion, $recaudo, $proxCita, $orientacionDada, $estatus, $usuarioActual) {
        $query = "INSERT INTO ASESORIA VALUES (NULL, '" . $descripcion . "','" . $usuario . "','" . $estatus . "','" . $recaudo . "',now(),0)";
        $query = Conectar($query);
        $query = "SELECT max(ID) asesoria FROM `asesoria` WHERE `ID_USUARIO`=" . $usuario;
        $query = Conectar($query);
        $row = mysql_fetch_assoc($query);
        $asesoria = $row['asesoria'];
        if ($proxCita)
            $query = "INSERT INTO CITA VALUES (NULL," . $usuarioActual . "," . $asesoria . ",
            '" . $orientacionDada . "',now(),str_to_date('" . $proxCita . "', '%m/%d/%Y'))";
        else
            $query = "INSERT INTO CITA VALUES (NULL," . $usuarioActual . "," . $asesoria . ",
            '" . $orientacionDada . "',now(),NULL)";
        $query = Conectar($query);
    }
    
    public function registroAsesoria_negocio($usuario, $descripcion, $recaudo, $proxCita, $orientacionDada, $estatus, $usuarioActual,
               $sector_economico,$actividad_economico,
                $ubicacion,$tiempo_funcionando,$origen_fondo,$personas_cargo,
                $cant_personas_cargo,$tareas_definidas,$cambio_colocaciones,
                $incremento_capital,$costos_mensuales,$ingresos_mensuales,
                $plan_negocios,$conoce_competidores,$conoce_estrategias,
                $concidera_competencia,$precios_competencia,$calculo_costos,
                $concidera_demanda,$identifico_mercado,$conoce_clientes,
                $fuentes_clientes,$conoce_buscan_clientes,$plan_aumentar_ventas,
                $aplica_plan_aumentar,$control_efectivo,$control_area_funcional, 
                $registro_ing_egresos,$forma_registro) {
        $query = "INSERT INTO ASESORIA VALUES (NULL, '" . $descripcion . "','" . $usuario . "','" . $estatus . "','" . $recaudo . "',now(),0)";
        $query = Conectar($query);
        $query = "SELECT max(ID) asesoria FROM `asesoria` WHERE `ID_USUARIO`=" . $usuario;
        $query = Conectar($query);
        $row = mysql_fetch_assoc($query);
        $asesoria = $row['asesoria'];
        if ($proxCita)
            $query = "INSERT INTO CITA VALUES (NULL," . $usuarioActual . "," . $asesoria . ",
            '" . $orientacionDada . "',now(),str_to_date('" . $proxCita . "', '%m/%d/%Y'))";
        else
            $query = "INSERT INTO CITA VALUES (NULL," . $usuarioActual . "," . $asesoria . ",
            '" . $orientacionDada . "',now(),NULL)";
        $query = Conectar($query);
        echo "registro";
        
       $this->registroNegocio($sector_economico,$actividad_economico,
                $ubicacion,$tiempo_funcionando,$origen_fondo,$personas_cargo,
                $cant_personas_cargo,$tareas_definidas,$cambio_colocaciones,
                $incremento_capital,$costos_mensuales,$ingresos_mensuales,
                $plan_negocios,$conoce_competidores,$conoce_estrategias,
                $concidera_competencia,$precios_competencia,$calculo_costos,
                $concidera_demanda,$identifico_mercado,$conoce_clientes,
                $fuentes_clientes,$conoce_buscan_clientes,$plan_aumentar_ventas,
                $aplica_plan_aumentar,$control_efectivo,$control_area_funcional, 
                $registro_ing_egresos,$forma_registro,$asesoria);
    }
    
    public function registroNegocio($sector_economico,$actividad_economico,
                $ubicacion,$tiempo_funcionando,$origen_fondo,$personas_cargo,
                $cant_personas_cargo,$tareas_definidas,$cambio_colocaciones,
                $incremento_capital,$costos_mensuales,$ingresos_mensuales,
                $plan_negocios,$conoce_competidores,$conoce_estrategias,
                $concidera_competencia,$precios_competencia,$calculo_costos,
                $concidera_demanda,$identifico_mercado,$conoce_clientes,
                $fuentes_clientes,$conoce_buscan_clientes,$plan_aumentar_ventas,
                $aplica_plan_aumentar,$control_efectivo,$control_area_funcional, 
                $registro_ing_egresos,$forma_registro,$asesoria) {
        $query = "INSERT INTO `sercomunitario`.`negocio` VALUES (NULL,
            '".$sector_economico."', '".$actividad_economico."', '".$ubicacion."', 
            '".$tiempo_funcionando."', '".$origen_fondo."', '".$personas_cargo."', 
            '".$cant_personas_cargo."', '".$tareas_definidas."', '".$cambio_colocaciones."', 
            '".$incremento_capital."', '".$costos_mensuales."', '".$ingresos_mensuales."', 
            '".$plan_negocios."', '".$conoce_competidores."', '".$conoce_estrategias."', 
            '".$concidera_competencia."', '".$precios_competencia."', '".$calculo_costos."', 
            '".$concidera_demanda."', '".$identifico_mercado."', '".$conoce_clientes."', 
            '".$fuentes_clientes."', '".$conoce_buscan_clientes."', '".$plan_aumentar_ventas."',
            '".$aplica_plan_aumentar."', '".$control_efectivo."', '".$control_area_funcional."',
            '".$registro_ing_egresos."', '".$forma_registro."', '".$asesoria."');";
        $query = Conectar($query);
    }

    public function registroCita($cita) {
        $query = "UPDATE `sercomunitario`.`asesoria` SET 
            `DESCRIPCION` = '" . $cita->getAsesoria()->getDescripcion() . "', `ESTATUS` = '" . $cita->getAsesoria()->getEstatus() . "', 
            `RECAUDO` = '" . $cita->getAsesoria()->getRecaudos() . "' WHERE `asesoria`.`ID` =" . $cita->getAsesoria()->getId();
        $query = Conectar($query);
        if ($cita->getFechaProx())
            $query = "INSERT INTO CITA VALUES (NULL," . $cita->getEncargado() . "," . $cita->getAsesoria()->getId() . ",
            '" . $cita->getOrientacion() . "',now(),str_to_date('" . $cita->getFechaProx() . "', '%m/%d/%Y'))";
        else
            $query = "INSERT INTO CITA VALUES (NULL," . $cita->getEncargado() . "," . $cita->getAsesoria()->getId() . ",
            '" . $cita->getOrientacion() . "',now(),NULL)";
        $query = Conectar($query);
    }

    /**
     * Funcion que retorna la lista de asesorias sin atender
     * @return AsesoriaVirtual lista de asesorias sin atender
     */
    public function getAsesoriaSinAntender() {
        $query = "SELECT U.CI AS CEDULA_USUARIO, U.NOMBRE AS NOMBRE_USUARIO, 
        U.APELLIDO AS APELLIDO_USUARIO, U.CORREO AS CORREO_USUARIO, U.DIRECCION
        AS DIRECCION_USUARIO, T.COD_AREA AS COD_AREA_TELEFONO, T.NUMERO AS 
        NUMERO_TELEFONO, A.DESCRIPCION AS DESCRIPCION_ASESORIA, A.ID AS 
        ID_ASESORIA, A.ESTATUS ESTATUS, A.FECHA FECHA FROM ASESORIA A, USUARIO U, TELEFONO T WHERE ESTATUS!='RESUELTO'
        AND A.ID_USUARIO=U.ID AND T.ID_USUARIO=U.ID";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $lista_asesoria = array();
            while ($row = mysql_fetch_assoc($query)) {
                $telefono = new Telefono('Personal', $row['COD_AREA_TELEFONO'], $row['NUMERO_TELEFONO']);
                $usuario = new Usuario($row['CEDULA_USUARIO'], $row['NOMBRE_USUARIO'],
                                $row['APELLIDO_USUARIO'], $row['CORREO_USUARIO'],
                                $row['DIRECCION_USUARIO'], $telefono);
                $asesoria = new AsesoriaVirtual($usuario, $row['ID_ASESORIA'], $row['DESCRIPCION_ASESORIA']);
                $asesoria->setEstatus($row['ESTATUS']);
                $asesoria->setFecha($row['FECHA']);
                $lista_asesoria[] = $asesoria;
            }
            return $lista_asesoria;
        }
    }
    
    public function getAsesoriaUsusario($CI,$Nombre,$Apellido){
        if ($CI=="")
            $CI=0;
        $query = "SELECT U.CI AS CEDULA_USUARIO, U.NOMBRE AS NOMBRE_USUARIO, 
        U.APELLIDO AS APELLIDO_USUARIO, U.CORREO AS CORREO_USUARIO, U.DIRECCION
        AS DIRECCION_USUARIO, T.COD_AREA AS COD_AREA_TELEFONO, T.NUMERO AS 
        NUMERO_TELEFONO, A.DESCRIPCION AS DESCRIPCION_ASESORIA, A.ID AS 
        ID_ASESORIA, A.ESTATUS ESTATUS, A.FECHA FECHA FROM ASESORIA A, USUARIO U, 
        TELEFONO T WHERE ESTATUS!='RESUELTO' AND A.ID_USUARIO=U.ID AND T.ID_USUARIO=U.ID 
        AND A.ID IN (SELECT c.ID_ASESORIA asesoriaId FROM asesoria a,cita c WHERE 
        c.id_asesoria=a.id and c.ID_ALUMNO_ENCARGADO in (SELECT ID FROM usuario WHERE 
        CI= ".$CI." or NOMBRE like '".$Nombre."' or APELLIDO like '".$Apellido."'))";        
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $lista_asesoria = array();
            while ($row = mysql_fetch_assoc($query)) {
                $telefono = new Telefono('Personal', $row['COD_AREA_TELEFONO'], $row['NUMERO_TELEFONO']);
                $usuario = new Usuario($row['CEDULA_USUARIO'], $row['NOMBRE_USUARIO'],
                                $row['APELLIDO_USUARIO'], $row['CORREO_USUARIO'],
                                $row['DIRECCION_USUARIO'], $telefono);
                $asesoria = new AsesoriaVirtual($usuario, $row['ID_ASESORIA'], $row['DESCRIPCION_ASESORIA']);
                $asesoria->setEstatus($row['ESTATUS']);
                $asesoria->setFecha($row['FECHA']);
                $lista_asesoria[] = $asesoria;
            }
            return $lista_asesoria;
        }
    }

    public function getAsesoriaInvitado($CI,$Nombre,$Apellido) {
        if ($CI=="")
            $CI=0;
        $query = "SELECT U.CI AS CEDULA_USUARIO, U.NOMBRE AS NOMBRE_USUARIO, 
        U.APELLIDO AS APELLIDO_USUARIO, U.CORREO AS CORREO_USUARIO, U.DIRECCION
        AS DIRECCION_USUARIO, T.COD_AREA AS COD_AREA_TELEFONO, T.NUMERO AS 
        NUMERO_TELEFONO, A.DESCRIPCION AS DESCRIPCION_ASESORIA, A.ID AS 
        ID_ASESORIA, A.ESTATUS ESTATUS, A.FECHA FECHA FROM ASESORIA A, USUARIO U, 
        TELEFONO T WHERE ESTATUS!='RESUELTO' AND A.ID_USUARIO=U.ID AND T.ID_USUARIO=U.ID 
        AND A.ID IN (SELECT c.ID_ASESORIA asesoriaId FROM asesoria a,cita c WHERE 
        c.id_asesoria=a.id and U.ID in (SELECT ID FROM usuario WHERE 
        CI= ".$CI." or NOMBRE like '".$Nombre."' or APELLIDO like '".$Apellido."'))";        
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $lista_asesoria = array();
            while ($row = mysql_fetch_assoc($query)) {
                $telefono = new Telefono('Personal', $row['COD_AREA_TELEFONO'], $row['NUMERO_TELEFONO']);
                $usuario = new Usuario($row['CEDULA_USUARIO'], $row['NOMBRE_USUARIO'],
                                $row['APELLIDO_USUARIO'], $row['CORREO_USUARIO'],
                                $row['DIRECCION_USUARIO'], $telefono);
                $asesoria = new AsesoriaVirtual($usuario, $row['ID_ASESORIA'], $row['DESCRIPCION_ASESORIA']);
                $asesoria->setEstatus($row['ESTATUS']);
                $asesoria->setFecha($row['FECHA']);
                $lista_asesoria[] = $asesoria;
            }
            return $lista_asesoria;
        }
    }
    
    /**
     * Funcion que modifica el estado de la asesoria con id = $id
     * @param type $id id de la asesoria a modificar
     */
    public function actualizarAsesoriaSinAntender($id) {
        $query = "UPDATE asesoria SET ESTATUS='RESUELTO' WHERE ID=" . $id;
        $query = Conectar($query);
    }

    /**
     * Funcion que retorna la asesoria correspondiente al id = $id
     * @param type $id asesoria a buscar
     * @return AsesoriaVirtual asesoria correspondiente al id = $id
     */
    public function getAsesoriaPorId($id) {
        $query = "SELECT U.CI AS CEDULA_USUARIO, U.NOMBRE AS NOMBRE_USUARIO, 
        U.APELLIDO AS APELLIDO_USUARIO, U.CORREO AS CORREO_USUARIO, U.DIRECCION
        AS DIRECCION_USUARIO, T.COD_AREA AS COD_AREA_TELEFONO, T.NUMERO AS 
        NUMERO_TELEFONO, A.DESCRIPCION AS DESCRIPCION_ASESORIA, A.ID AS 
        ID_ASESORIA,A.ESTATUS ESTATUS,A.RECAUDO RECAUDO,A.FECHA FECHA FROM ASESORIA A, USUARIO U, TELEFONO T WHERE 
        A.ID_USUARIO=U.ID AND T.ID_USUARIO=U.ID AND A.ID=" . $id;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            while ($row = mysql_fetch_assoc($query)) {
                $telefono = new Telefono();
                $telefono->setTipo('Personal');
                $telefono->setNumero($row['NUMERO_TELEFONO']);
                $telefono->setCodArea($row['COD_AREA_TELEFONO']);
                $usuario = new Usuario($row['CEDULA_USUARIO'],
                                $row['NOMBRE_USUARIO'], $row['APELLIDO_USUARIO'],
                                $row['CORREO_USUARIO'], $row['DIRECCION_USUARIO'], $telefono);
                $asesoria = new AsesoriaVirtual($usuario, $row['ID_ASESORIA'],
                                $row['DESCRIPCION_ASESORIA']);
                $asesoria->setEstatus($row['ESTATUS']);
                $asesoria->setRecaudos($row['RECAUDO']);
                $asesoria->setFecha($row['FECHA']);
            }
            return $asesoria;
        }
    }

    public function getSintesis($asesoria) {
        $query = 'SELECT `DESCRIPCION` FROM `asesoria` WHERE `ID`=' . $asesoria;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $row = mysql_fetch_assoc($query);
            $sintesis = $row['DESCRIPCION'];
            return $sintesis;
        }
    }

    public function getRecaudos($asesoria) {
        $query = 'SELECT `RECAUDO` FROM `asesoria` WHERE `ID`=' . $asesoria;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $row = mysql_fetch_assoc($query);
            $sintesis = $row['RECAUDO'];
            return $sintesis;
        }
    }

    public function getListaCitas($asesoria) {
        $query = 'SELECT * FROM cita c WHERE ID_ASESORIA=' . $asesoria;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        //$gestionUsuario = new GestionUsuario();
        $listaCitas = array();
        if ($num == 0) {
            return null;
        } else {
            while ($row = mysql_fetch_assoc($query)) {
                $cita = new Cita();
                $cita->setId($row['ID']);
                $cita->setFecha($row['FECHA']);
                $cita->setOrientacion($row['ORIENTACION']);
                $cita->setEncargado($row['ID_ALUMNO_ENCARGADO']);
                $cita->setFechaProx($row['FECHA_PROX']);
                $listaCitas[] = $cita;
            }
            return $listaCitas;
        }
    }

    function getCita($id) {
        $query = 'SELECT *,date_format(FECHA,"%d/%m/%Y") as FechaFormarto,date_format(FECHA_PROX,"%d/%m/%Y") as FechaProxFormarto FROM cita c WHERE ID =' . $id;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        $gestionUsuario = new GestionUsuario();
        if ($num == 0) {
            return null;
        } else {
            $row = mysql_fetch_assoc($query);
            $cita = new Cita();
            $cita->setId($row['ID']);
            $cita->setFecha($row['FechaFormarto']);
            $cita->setOrientacion($row['ORIENTACION']);
            $cita->setEncargado($gestionUsuario->buscarUsuarioPorId($row['ID_ALUMNO_ENCARGADO']));
            $cita->setFechaProx($row['FechaProxFormarto']);

            return $cita;
        }
    }

    public function getAsesoriaPorUsuario($idUsuario, $fechaINI, $fechaFIN) {
        $query = "SELECT *,A.ID ID_ASESORIA FROM ASESORIA A,USUARIO U WHERE 
                A.ID IN (SELECT DISTINCT(ID_ASESORIA) FROM CITA WHERE
                ID_ALUMNO_ENCARGADO=" . $idUsuario . ")
                AND U.ID=A.ID_USUARIO AND U.ID=T.ID_USUARIO";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
//            $listaAsesoria = array();
//            while ($row = mysql_fetch_assoc($query))
//            {
//                $telefono = new Telefono();
//                $telefono->setTipo($row['TIPO']);
//                $telefono->setNumero($row['NUMERO']);
//                $telefono->setCodArea($row['COD_AREA']);                
//                $usuario = new Usuario($row['CI'], 
//                    $row['NOMBRE'], $row['APELLIDO'], 
//                    $row['CORREO'], $row['DIRECCION'], $telefono);
//                $asesoria = new AsesoriaVirtual($usuario, $row['ID_ASESORIA'], $row['DESCRIPCION']);
//                $asesoria->setEstatus($row['ESTATUS']);
//                $asesoria->setRecaudos($row['RECAUDO']);
//                $asesoria->setFecha($row['FECHA']);
//                $asesoria->setListaCita($this->getListaCitas($asesoria->getId()));
//                $listaAsesoria[]=$asesoria;
//            }
            return $listaAsesoria;
        }
    }

    public function getAsesoriaPorFecha($fechaINI, $fechaFIN) {
        $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
            FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "')";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $listaAsesoria = array();
            while ($row = mysql_fetch_assoc($query)) {
                $usuario = 1;
                $asesoria = new AsesoriaVirtual($usuario, $row['ID'], $row['DESCRIPCION']);
                $asesoria->setEstatus($row['ESTATUS']);
                $asesoria->setRecaudos($row['RECAUDO']);
                $asesoria->setFecha($row['FECHA']);
                $asesoria->setListaCita($this->getListaCitas($asesoria->getId()));
                $listaAsesoria[] = $asesoria;
            }
            return $listaAsesoria;
        }
    }

    public function updateStatus($estatus, $asesoria) {
        $query = "UPDATE `asesoria` SET `ESTATUS`='" . $estatus . "'  WHERE ID=" . $asesoria;
//        echo $query;
        $query = Conectar($query);
    }

    public function getCantAsesoriasPorEstatus($estatus, $fechaINI, $fechaFIN) {
        if ($estatus == "Iniciadas_Fisico") {
            $query = "select * from asesoria where _ONLINE=0 and FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "'";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "Iniciadas_Online") {
            $query = "select * from asesoria where _ONLINE=1 and FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "'";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "En_Proceso_ONLINE") {
            $estatus = "En Proceso";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=1";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "En_Proceso_FISICO") {
            $estatus = "En Proceso";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=0";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "Completado_FISICO") {
            $estatus = "Completado";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=0";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "Completado_ONLINE") {
            $estatus = "Completado";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=1";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "Descartados_FISICO") {
            $estatus = "Descartado";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=0";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else if ($estatus == "Descartados_ONLINE") {
            $estatus = "Descartado";
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "' and _ONLINE=1";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        } else {
            //Con citas en el rango de fechas que sean tanto
            //En Proceso, Completado,Online
            $query = "select * from asesoria where id in (SELECT distinct(ID_ASESORIA) 
                    FROM `cita` WHERE FECHA between '" . $fechaINI . "' and '" . $fechaFIN . "') 
                    and ESTATUS like '" . $estatus . "'";
            $query = Conectar($query);
            $num = mysql_num_rows($query);
            return $num;
        }
    }

}

?>
